<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>tabs导航栏</title>
    <link rel="stylesheet" href="./css/basic.css" />
    <style>
      .container {
        width: 100vw;
        height: 100vh;
      }

      .header {
        width: 100%;
        height: 100px;
        background-color: pink;
      }

      .header ul {
        /* 这里的.hearder ul 是包含四个li的标签 */
        display: flex;
        justify-content: space-evenly;
      }

      .header ul li {
        /* 这里的.header ul li 是包含li中单个文字的标签 */
        width: 100%;
        height: 100px;
        line-height: 100px;
        text-align: center;
        font-size: larger;
      }

      .header ul li:hover {
        /* ：hover 是当鼠标移动到该处时所属性的改变 */
        background-color: orange;
        color: #fff;
        width: 100%;
      }
    </style>
  </head>

  <body>
    <div class="container">
      <div class="header">
        <ul>
          <li index="0">首页</li>
          <li index="1">分类</li>
          <li index="2">购物袋</li>
          <li index="3">我的</li>
        </ul>
      </div>
      <div class="body">
        <li>内容</li>
      </div>
    </div>
    <script>
        // querySelectorAll 包含多个元素，返回一个伪数组 需要使用forEach遍历它，把它变成一个真正的数组
        // querySelector 单个元素，返回一个节点对象
      let allTabs = document.querySelectorAll(".header ul li");
      let bodyDom = document.querySelector(".body");
      allTabs.forEach((dom) => {
        // dom.addEventListener("click", (event)=> {}
        // 这里的"click"是事件，因为是点击事件，所以使用click 
        // (event)=>{} 是事件处理函数
        dom.addEventListener("click", (event) => {
          allTabs.forEach((item) => {
            item.style.backgroundColor = "transparent";
            item.style.color = "#000";
          });
          // target 是基于event的属性方法
          // style.backgroundColor，这里是点击后，通过event回调函数的target的背景颜色的改变
          // event.target.style.color = "#fff"; 这里是点击后文字发生的改变
          event.target.style.backgroundColor = "coral";
          event.target.style.color = "#fff";
          // 用于获取触发事件的目标元素（通过 event.target 指向）上的指定属性的值
          const flag = event.target.getAttribute("index");
          if (flag === "0") {
            // innerHTML是一个用于操作 HTML 元素内容的属性。
            // 它允许你获取或设置一个元素内部的 HTML 内容。
            // 元素内部的 HTML 内容是指元素开始标签和结束标签之间的所有内容，包括文本、其他 HTML 标签等。
            bodyDom.innerHTML = `<h1>首页</h1>`;
          } else if (flag === "1") {
            bodyDom.innerHTML = `<h1>分类</h1>`;
          } else if (flag === "2") {
            bodyDom.innerHTML = `<h1>购物袋</h1>`;
          } else {
            bodyDom.innerHTML = `<h1>我的</h1>`;
          }
        });
      });
    </script>
  </body>
</html>
